#ifndef PERSONNAGEHERO_PRIVATE_H_
#define PERSONNAGEHERO_PRIVATE_H_

#include "PersonnageHero.h"
#include "Personnage_private.h"

/**
 * \struct _PersonnagHeroExt
 * \brief Définie la structure interne de l'extension PersonnageHero
 */
typedef struct _PersonnagHeroExt{
	/**
	 * Héritage
	 */
	TypePersoHero type;
	void* ext;
	void (*free)(Personnage* perso);
}PersonnageHeroExt;

/* Constructor */
Personnage* newPersonnageHero(int exp,int vie,Pouvoir* pouvoir,Case* c,Joueur* joueur);

/* Destructor */
void freePersonnageHero(Personnage* perso);

/* Getters */
const char* persoHeroGetTypeNom(Personnage* perso);
TypePersoHero persoHeroGetType(Personnage* perso);
void* persoHeroGetExt(Personnage* perso);

/* Settlers */
void persoHeroSetType(Personnage* perso,TypePersoHero type);
void persoHeroSetExt(Personnage* perso,void* ext);

#endif /*PERSONNAGEHERO_PRIVATE_H_*/
